The background description provided herein is for the purpose of generally presenting the context of the disclosure. Unless otherwise indicated herein, the materials described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
With advances in integrated circuit and computing technologies, increasing number of processors support 64-bit addressing providing larger 64-bit address spaces and extra registers for user applications. Further, for a number of processors, it is possible for developers to port only key parts of a legacy 32-bit application to 64-bit code and run the ported portion in 64-bit processor mode, while leaving the remaining parts unmodified and running in 32-bit processor mode. The hybrid application would use mode switch instruction to switch between the 32-bit processor mode and the 64-bit processor mode to execute the 32-bit and 64-bit code segments.
However, even when switching to 64-bit processor mode, the application process is still considered as a 32-bit application from the Operating System (OS) kernel's perspective. Typically, the kernel follows the 32-bit signal application binary interface (ABI) to preserve only the 32-bit context across signal handling, so any 64-bit extra context could be polluted if a 32-bit application (such as a signal handler) unintentionally modifies them. Due to this limitation, even switching to 64-bit processor mode, the 32-bit application still cannot use the 64-bit extra registers freely.